                            CLOCKWORK PIANOLA
                            =================

   The CLOCKWORK PIANOLA is a very simple program which plays tunes
   in 3 or 4 voices, taking its instructions from a separate text
   file.  If no text file is specified as a parameter when the PLAY
   command is given then a file called READ.ME, this one, is used.

   TUNE-FILES:

   The instructions understood by the Pianola program are quite simple,
   here is a summary :-

      Valid instructions start with a command symbol at the left
      margin, all other lines are ignored.

      Command Symbols include C P Q T X * % #, explained below.

      Numbers are represented as ASCII-48 unless otherwise stated.
      (ie "0"=0, "A"=17, etc)

                            ASCII-48 CODE
                   0   10   20   30   40   50   60   70
                Ŀ
              0   0    :    D    N    X    b    l    v  
              1   1    ;    E    O    Y    c    m    w  
              2   2    <    F    P    Z    d    n    x  
              3   3    =    G    Q    [    e    o    y  
              4   4    >    H    R    \    f    p    z  
              5   5    ?    I    S    ]    g    q    {  
              6   6    @    J    T    ^    h    r    |  
              7   7    A    K    U    _    i    s    }  
              8   8    B    L    V    '    j    t    ~  
              9   9    C    M    W    a    k    u       
                


   PIANOLA COMMANDS :

      Cip     : change colours to ink=i and paper=p.

      Pstring : play this string of 3-voice chords.
                Groups of 4 characters representing; duration, voice1,
                voice2, and voice3.  Duration in demisemiquavers (DSQs),
                voices in semitones above bottom E.

      Qstring : play this string of 4-voice chords.
                Groups of 5 characters, similar to Q above

      Trctext : Print text in row=r, column=c using current attributes,
                   (If column character is blank, centre text.)
                   (Row E is bottom of piano roll.)

      Xip     : Clear the screen using ink=i and paper=p attibutes.

      #decimal: transpose decimal semitones above lowest possible
                   (default is 24)

      %decimal: tempo decimal crotchets per minute

      **      : end of file marker, essential for return to DOS.

   Examine the tune file below to see how commands are used.


   LIVE CONTROLS :

   The PIANOLA takes instructions about tempo and pitch from the tune file.
   But during play, can be urged Faster or Slower from the keyboard, and also
   transposed Up or Down by semitones (the actual pitch, not the display).
   Pressing "R" during play will reset the tempo to the file specification.

   Escape will also stop play at the end of the current chord.

   PIANOLA INSTRUCTION FILES can be written with any plain-text word
   processor.  Sidekick is ideal. PIANOLA needs a CR or a CR+LF at the end
   of each line (strictly, immediately before the Command Symbol on the
   following line).

C?6          <- Color bright white on yellow
T6 Playing DEMO file
             <- print text at line 6
#24          <- transpose 2 octaves above lowest (this is actually default)

%80          <- tempo 80 crotchets per minute

C07          <- color black ink on white paper

TE CLOCKWORK SOFTWARE
             <- Print text at line 21, centered.

P4000        <-Crotchet pause, advanced paper 1 line.
TE of Bidbury House, Bidbury Lane,
P4000
TE HAVANT, PO9 3JG
P40004000    <-  These chords of rest are really to roll the paper out.
TE --- Presents ---
P400040004000        <- roll more paper

  Fanfare
P4EEE10002EEE2EEE2EEE     <- 3-voice chords
P4IEE10002IEE2IEE2IEE
P4LIE10002LIE2LIE2LIE
Q8QLIE                    <- this was a 4 voice chord
P40004000
C47                       <- change color to red ink on white paper
TE the CLOCKWORK PIANOLA
P40004000A000
%120                      <- change tempo

    N.B.  This is the crib I use for transposing from score to text :

      scale of 3 FLATS:-

        123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'abcdef  ASCII-48
        :. |. | . |. | .| . : .| . |. | . |. | .: . : .: . :.   Scale notes
           |  |   |  |  |      |   |  |   |  |                  Staves
         F G A BC D EF G A BC D EF G A BC D EF G A BC D EF G A  Notes


   Tune : "I DO LIKE TO BE BESIDE THE SEASIDE"
P8OMG2PMG
P4QE92QLH4OC72LLH       <- each line is a bar
P4JC@2H4@4GC?2HC?
P4OC>2OMG2OG72OH72OI;
P2OJ;2OL;2>JA2OG72OE72OCA B
P6QE94OC72LLH
P4JC@2H4@4GC?2HC?
Q6QEA52QI4E2QEL22QEO@        <- try some 4-voice chords
Q2QE2M2QE2L200J>4QE<M2RF<M  C
P6SG;4QMG2MG0
P4LGC2JDA4IF@2JDA
Q4Q<102QLHE4O:C02OJFC
Q4M9A02MIEC4L@702IEC0
Q4L@602LHEB4J>202JHEB
Q4L@602LHEB2J>202H=102J>20
Q4L@602LGCA4J>202JGCA
P4G;02GCA4OC72OJG    D
P4QE92QLH4OC72LLH
P4JC@2H4@4GC?2HC?
P4OC>2OMG2OG72OH72OI;
P2OJ;2OL;2>JA20G720E72;CA
P4QE92QLH4OC72LLH
P4JC@2H4@4GC?2HC?
Q6QEA52QI4E2QEL22QEO@
Q2QE2M2QE2L200J>4PDJM2QEJM  E
Q4SKG02RJG;4SKG62RJG;
Q4SKG02SKG;4QSK62NJG;
Q4QLG42OLG@4QLF22OLF>
Q4QLE02OLF=4MIE02LIC9
Q6JHB26QNHE
Q400072LGCA4JGCA2LGCA
Q4HC@<2HOC02HQE02HOC02HL@0
Q4H<<<200004TOLH
P200020002000


C07                       <- Color black on white
P200020002000             <- Roll some more paper

**                         <- End of file marker


      (c) John Worley  March 1988
